package red.lsk.business.service;

import java.math.BigDecimal;
import java.util.List;
import red.lsk.business.domain.BizMember;
import red.lsk.business.domain.dto.ConsumeDto;
import red.lsk.business.domain.vo.StatisticalReportVO;

/**
 * 会员管理Service接口
 * 
 * @author ruoyi
 * @date 2024-05-09
 */
public interface IBizMemberService 
{
    /**
     * 查询会员管理
     * 
     * @param id 会员管理主键
     * @return 会员管理
     */
    public BizMember selectBizMemberById(String id);

    /**
     * 查询会员管理列表
     * 
     * @param bizMember 会员管理
     * @return 会员管理集合
     */
    public List<BizMember> selectBizMemberList(BizMember bizMember);

    /**
     * 新增会员管理
     * 
     * @param bizMember 会员管理
     * @return 结果
     */
    public int insertBizMember(BizMember bizMember);

    /**
     * 修改会员管理
     * 
     * @param bizMember 会员管理
     * @return 结果
     */
    public int updateBizMember(BizMember bizMember);

    /**
     * 批量删除会员管理
     * 
     * @param ids 需要删除的会员管理主键集合
     * @return 结果
     */
    public int deleteBizMemberByIds(String ids);

    /**
     * 删除会员管理信息
     * 
     * @param id 会员管理主键
     * @return 结果
     */
    public int deleteBizMemberById(String id);

    /**
     * 查找手机号码是否重复
     *
     */
    public int countMemberByPhone(String phone);

    /**
     * 根据手机号码给会员充值,并且更新会员余额、折扣、积分等
     */
    public int rechargeMemberByPhone(String phone, BigDecimal money);

    /**
     * 根据会员编号给会员充值,并且更新会员余额、折扣、积分等
     */
    public int rechargeMemberByMemberId(String memberId, BigDecimal money,String remark);

    /**
     * 消费 输入原价 根据当前用户的折扣比例来计算
     */
    public int consumeByMemberId(ConsumeDto consumeDto);
    /**
     * 1.总会员数2.总交易金额3.今日新增会员数4.今日交易总额
     * 首页统计
     */
    public StatisticalReportVO getStatisticalReport();


}
